using System.Collections;
using System.Runtime.Serialization;
using System.Web;

namespace WebMonitor.Http {
    /// <summary>
    /// Summary description for IHttpApplicationState.
    /// </summary>
    public interface IHttpApplicationState : IEnumerable, ISerializable, IDeserializationCallback {
        void Add(string name, object value);
        void Clear();
        object Get(int index);
        object Get(string name);
        string GetKey(int index);
        void Lock();
        void Remove(string name);
        void RemoveAll();
        void RemoveAt(int index);
        void Set(string name, object value);
        void UnLock();

        string[] AllKeys { get; }
        IHttpApplicationState Contents { get; }
        object this[string name] { get; set; }
        object this[int index] { get; }
        HttpStaticObjectsCollection StaticObjects { get; }
    }
}